package DAL;

import java.util.*;
import DTO.*;

/**
 * Classe responsável por gerenciar os dados de parametrização das configurações do jogo
 *
 * @author (R. Soares)
 * @version (1.0 - 26.04.2010)
 */
public class ConfiguracaoDAL extends ArquivoControleDAL
{
    // Variáveis de Instância --------------------------------------------------*
    // Não há

    // Construtores ----------------------------------------------------------------*
    /**
     * O construtor da classe informa o nome do arquivo  de configuração que será lido.
     */
    public ConfiguracaoDAL()
    {
        // Informa o nome do aquivo de configuração de jogo.
        super("configuracao");
    }

    // Métodos ---------------------------------------------------------------------*
    /**
     * Este método  retorna um objeto ConfiguracaoDTO, com os dados de configuração
     * do jogo.
     *
     * @return     ConfiguracaoDTO
     */
    public ConfiguracaoDTO obterConfiguracao()
    {
        ConfiguracaoDTO configuracaoDTO = null;
        ArrayList linhasArquivo = lerArquivo();

        try{
                if( linhasArquivo.size() < 11 )
                    throw new NullPointerException();

                else
                {
                    configuracaoDTO = new ConfiguracaoDTO(
                                                           obterValorInteiro( (String) linhasArquivo.get(0) ),
                                                           obterValorInteiro( (String) linhasArquivo.get(1) ),
                                                           obterValorInteiro( (String) linhasArquivo.get(2) ),
                                                           obterValorInteiro( (String) linhasArquivo.get(3) ),
                                                           obterValorDecimal( (String) linhasArquivo.get(4) ),
                                                           obterValorDecimal( (String) linhasArquivo.get(5) ),
                                                           obterValorDecimal( (String) linhasArquivo.get(6) ),
                                                           obterValorDecimal( (String) linhasArquivo.get(7) ),
                                                           obterValorDecimal( (String) linhasArquivo.get(8) ),
                                                           obterValorInteiro( (String) linhasArquivo.get(9) ),
                                                           obterValorInteiro( (String) linhasArquivo.get(10) )
                                                           );
               }
        }

        catch(NullPointerException e) {
                System.out.println("Arquivo CONFIGURACAO.CTR corrompido");
        }

        catch(NumberFormatException e) {
                System.out.println("Arquivo CONFIGURACAO.CTR corrompido");
        }

        return configuracaoDTO;

    } // Fim método

} // Fim classe
